A computer system typically employs a graphical user interface (GUI) to present information to a user on a display device and, through the use of input devices (e.g., a mouse, keyboard, keypad, touch-screen, or other sensing systems), permits the user to interactively manipulate elements displayed within the GUI. Such manipulations are interpreted by a executing computer program managing such a GUI, as directives to control the operation of its computer and thus perform tasks desired by its user. Computer devices employing such interfaces vary widely in performance, physical size, types of input and display systems, as well as optimization for specialized tasks (a cellular telephone or handheld computer, for example). As such, users of these devices are confronted with an equally diverse range of GUI designs. Each of these GUIs must be learned and practiced by a user in order to be successfully operated. Users unfamiliar with operating a new device may find they can only apply a small subset of the operational knowledge they've gained from understanding the GUIs of other devices. Furthermore, software applications that operate within such GUIs may present an equally diverse range of visual and operational idiosyncrasies.
A primary benefit of visual and operational consistency in GUI systems, is the speed with which a user may learn the operation of a new computer device. If the GUI of a new device is consistent with the GUI of a device familiar to a user, such a user would recognize similarities between the two GUIs and thus intuitively apply his or her existing knowledge of the familiar GUI. Unfortunately, visual and operational consistency among GUI systems has not been adequately served by GUI designs in the prior art. Furthermore, although network connectivity is commonly included in many computer devices, they lack a shared, network-based GUI system that can serve users' need for communication with other networked users, or access to network-based information and computer programs.
A typical GUI used to manage the operating system (OS) of a personal computer often relies upon the analogies made between items appearing in the GUI and items commonly found on a person's desk. As such, the predominant portion of the GUI's available display area is commonly referred to as a “desktop”. A desktop, as provided by popular GUI systems such as the UNIX-based X-Windows system, Microsoft's Windows, and Apple's Macintosh OS, consists of a user-configurable workspace containing items that represent resources (e.g., computer files, applications, printing devices, and other items) available to the computer presenting the desktop. These desktops may also contain items that, via a network connection, enable users to access similar resources residing in other computers. Such GUIs, however, always define their desktops using the specific configurations and resources available to the computers in which they operate. As a result of this, if a user performs tasks using such a GUI in a first computer, and later attempts to use a second, equally equipped computer, the GUI functioning in the second computer cannot provide the same working environment (e.g., desktop configuration, files, applications, and other resources) found in the first computer. Furthermore, if that same user chooses to employ a computer that uses a different operating system, he or she will confront not only different resources and applications, but a different GUI design (for example, a Windows GUI instead of a Macintosh GUI). In the prior art, the GUIs of operating systems in personal computers provide users with configurable workspaces defined by the resources available to the specific computers in which such GUIs operate, yet do not provide users with means of producing their familiar desktops in other computers.
A portable computing device, such as a handheld computer or PDA (e.g., “personal digital assistant” such as 3Com Corporation's Palm Pilot), typically employs its GUI in the same manner as the previously described personal computers. As such, a portable device's GUI is based on its unique configuration and available resources, with the primary differences being consequences of its small physical size. Generally, these differences are reduced performance of a device's central processing unit (CPU), limited data-storage capacity, and the limited size, number and color of picture elements (pixels) provided by its display system. A user of such a portable computing device would typically use it when away from his or her larger personal computer. Later, that user might employ a network connection to transfer data from the portable device to a personal computer for further processing. When that same user attempts to continue working with the transferred data in his or her personal computer, the user will encounter significant differences between the computer's GUI design and the GUI used in the portable device. Additionally, users will find PC-based applications for accessing and editing such transferred data to be significantly different from such applications on portable computers. As with personal computers, a user of a portable computing device is not provided by the device's GUI with a means of producing his or her familiar desktop environment and resources in another computer the user chooses to employ.
An example of a highly specialized computing device that employs a GUI, is a wireless mobile telephone (e.g., a cellular telephone). Such devices employ simple, highly-specialized GUI implementations because of their limited input and display systems (e.g. simple keypads and displays with limited pixel-resolution). Therefore, the GUIs of mobile telephones bear little similarity to a GUI a user would employ on his or her personal computer or PDA. In fact, in the prior art, the GUIs of mobile telephones provide very little visual and operational consistency with the GUIs of other classes of computer devices. Mobile telephones frequently incorporate the capability of connecting to a data network (such as the Internet). This feature enables a user to accomplish some of the tasks the user might commonly perform at his or her desktop computer (accessing world wide web sites or email, for example). Before a user can perform such tasks, however, the user must first learn and practice the operation of the GUI in his or her mobile telephone. Additionally, the user must undertake this learning process without benefit of applying a significant portion of the knowledge he or she has gained through use of GUIs used in other computer devices. Once a user has learned the GUI of his or her mobile telephone, the user must also gain proficiency with the device's networking applications in order to accomplish his or her network-related tasks. Such applications are also likely to be visually and operationally different from applications of similar purpose a user might find in a personal computer.
Operating system GUIs in the prior art have not been designed to address users' need for visual and operational consistency across multiple classes of computer devices. This is primarily because such GUIs have been designed to make use of the highest level of visual complexity that can be rendered by the display systems of the specific class of computers for which they are designed. For example, the manufacturers of Microsoft Corporation's Windows and Apple's Macintosh operating systems specify that their GUIs are designed for a minimum display resolution of 640 horizontal pixels by 480 vertical pixels (the minimum resolution of the desktop and laptop class of computers). Likewise, the GUI of 3Com Corporation's Palm OS is designed to fit only the PDA class of computers with a display resolution of 160 horizontal pixels by 160 vertical pixels. For both of these classes of computers, those operating system manufacturers have designed GUIs that permit as many GUI elements (e.g. GUI controls, objects, and organizational structures) as can fit into their computers displays. Although such a design-practice has been common in the prior art, basing a GUI's permitted display complexity solely on this criteria prohibits a GUI's implementation across a wide variety of devices. For example, rendering Microsoft's Windows GUI in a PDA-class display would result in a desktop that is clearly unwieldy for a user to operate. In such a case, the GUI's objects, controls, dialog windows, and other structures will not completely fit into the available display area causing some to be partially or totally hidden from a user's view. If the GUI of the Palm OS were to be implemented in the large display of a desktop computer, it would not scale to utilize the available display area. This is because the Palm OS does not include a facility for scaling its GUI beyond the resolution found in its specific class of computer.
Attempts to create software applications to address a user's need for GUI portability can be found in the prior art. Such applications (Symantec Corporation's pcAnywhere, for example) have been created to enable a user to gain access to the GUI of a distant computer by means of replicating a computer's GUI display and user-input systems in a second computer. Such software uses a network or modem link between two computers to display the GUI of a first personal computer within a application window presented in the GUI of a second personal computer. When a user operates the second computer's input systems (e.g., mouse and keyboard) within such a application window, the associated control signals are transferred to the first computer. A software application running in the first computer then interprets the control information and uses it to control the first computer's GUI. To implement such a system, a user must install and execute such software in each of the two computers. The program executing in the first computer transmits continually updated images of that computer's GUI display to the second computer which presents the most recent image in the software's application window. Although such systems enable a user to access the GUI of a distant personal computer from a second computer, these systems do not actually transport and execute the GUI's program code in the second computer; such software simply functions as an extension of the display and keyboard of the distant computer allowing it to be remotely controlled. Furthermore, such systems cannot be practically employed if small, portable computing devices are used to access larger personal computers due to the previously noted differences in their respective display systems. A smaller device's display does not permit convenient presentation of the larger, and often more complex, display image generated by the GUI of a typical personal computer.
Other attempts to serve users' need for GUI portability include systems, such as Lotus Corporation's Notes, that provide a user with a GUI presented within a software application window on a personal computer. The “client” software of such a system produces its GUI using configuration data stored in the personal computer in which the client executes, as well as resources maintained on a network-accessible “server” computer. Software executing in the server computer communicates with the client software and supplies data and application resources needed by the user. Thus such systems are commonly referred to as “client/server” systems. If a user employing such a client at a first computer chooses to perform tasks using identical client software at a second computer, the user will be able to employ the same client-GUI he or she used at the first computer. There are reasons, however, why such client/server systems in the prior art have not adequately served users' needs for portability, as well as visual and operational consistency, when operated using dissimilar computers and client implementations:
(a) Client/server systems in the prior art (Lotus Corporation's Notes, for example) have not been designed to specifically enforce visual and operational consistency within their client implementations. In fact, in the case of Lotus' Notes, developers are encouraged by Lotus Corporation's documentation to freely customize the GUIs of client implementations including the quantity and arrangement of GUI elements. Such customization can and does lead to complex client-GUIs, intended for use in desktop computers, that are impossible to properly render on the displays of smaller computing devices. In such cases, any client implementations developed for smaller computer devices will necessarily be visually and operationally different from its desktop counterpart. A user encountering such differing GUI designs must learn and practice the implementations before he or she can use them. Because the manufacturers of client/server systems in the prior art have not designed them using common subsets of clearly perceivable visual and operational characteristics, such systems cannot guarantee effective reconstruction of a user's familiar working environment across a variety of computing devices.
(b) Client/server systems in the prior art do not provide efficient GUI-portability because they require a user to confirm or install platform-specific client software in a computer before he or she can use such a system. Although confirmation of properly installed client software might not appear to be an inhibition to GUI-portability, the increasing trend of dependence upon “loaned” computing devices by users seeking GUI-portability lessens the likelihood that they will find appropriate clients installed in such computers. Examples of such loaned computers include publicly accessible computer devices, as well as those provided by a user's businesses associates, family, friends and others. To use any of these computers, client/server systems require software-clients to be created in high-level programming languages (e.g., C, C++, and others) and compiled to native, processor-executable code for specific computer and operating system combinations. For example, a user seeking to operate a client/server system using a computer based on Intel Corporation's Pentium CPU and the Linux operating system must confirm the installation of client software developed specifically for that computer and OS combination. If a user seeks to operate a client/server system in a computer that has not had an installation of such software, the user must possess diskettes, or another data storage medium, containing installation programs designed for the specific OS and hardware used in that computer. The user must then install and configure such software before the desired client/server system may be used. If the client/server system's manufacturer has not yet developed a client implementation for the user's computer and OS, the user will not be able to access his or her familiar client-GUI on that computer.
(c) In the prior art, the use of “native” GUI-controls in the clients of client/server systems often contribute to visual and operational inconsistency and therefore reduced portability. Developers creating clients for such systems predominantly employ the “native” GUI-controls supplied by the operating system in which the client will run. For a user seeking to employ such systems over a wide variety of client implementations, idiosyncrasies among equivalent native controls can reduce the user's recognition of those controls and his or her perception of predictability in their operation. For example, the locations and visual designs of the controls for closing and iconifying GUI windows vary significantly between Microsoft's Windows, Apple's Macintosh OS, and the X-Windows GUI common to many UNIX systems. The behavior and appearance of menus, selection-lists, scrollbars and other controls in these systems vary as well. Although efficient GUI-portability is served when a user encounters recognizable, predictable controls among all client implementations, such factors are not in evidence for the designs of client/server systems in the prior art.
An early system that provided a measure of transportability for a user's working environment was the “host/terminal” system. Such systems use video display terminals (VDTs) connected to a central “host” computer, and operate in a manner similar to the previously described client/server systems. User input is transferred to a host computer by a VDT and is processed by software executing in the host computer. Display data, generated by such software, is subsequently sent from the host computer to the VDT in order to update the terminal's display. A user who has performed tasks using one of the VDTs in the system may later use another VDT to access an identical workspace. In the prior art, such systems have been deployed primarily in large offices where large numbers of identical terminals can provide efficient distribution of a company's information resources. Although such systems can provide transportability of a user's working environment among the systems' terminals, these systems have not been designed to provide consistent user interfaces across a wide variety of computer devices. In the prior art, devices other than a system's standard terminals have been adapted for use in such a systems. The GUI systems provided for those devices, however, generally possess minimal visual and operational consistency with their terminal-based counterparts.
In conclusion, it can be seen that few systems in the prior art attempt to serve users' need for GUI-portability and that none of those systems is able provide such portability without significant degradation of visual and operational consistency.